package com.cskaoyan._03array._01demo;

import java.util.Arrays;

/**
 * @author Macro_Ray
 * @since 2024/3/2 10:17
 */
/*
 * 数组在声明之后仍然不能使用，因为还没有对数组里面的东西初始化
 *
 * 初始化有两种
 * 1.静态初始化， 即直接告诉JVM，里面有哪些数据
 * 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3,...};
 * 数据类型[] 数组名 = {元素，元素，元素...}
 *
 * 2.动态初始化， 程序员指定数组的长度，数组中每个元素的初始值由系统（实际上是JVM）决定
 * 数据类型[] 数组名 = new 数据类型[数组长度];
 *
 * */
public class _02Initialization_01 {
    public static void main(String[] args) {
        // 静态初始化
        // 声明一个数组，存放在int里面，但是没有初始化不能使用
        // int[] nums;

        // 数据类型[] 数组名 = new 数据类型[]{元素，元素，元素...}
        int[] nums = new int[]{1, 2, 3, 4};

        // 静态初始化简写形式
        // 数据类型[] 数组名 = {元素，元素，元素...}
        int[] nus = {1, 2, 3, 4};


        // 动态初始化(用的多)
        // 数据类型[] 数组名 = new 数据类型[数组长度];
        // 引用数据类型的初始化值：null
        String[] strings = new String[10];

        System.out.println(Arrays.toString(nums));
        System.out.println(Arrays.toString(nus));
        System.out.println(Arrays.toString(strings));

        // 数组声明和初始化
        int[] numss =new int[5];
        // 只要是new，就会在堆上开辟空间
        // 栈上面也有东西，栈上存的是地址

        System.out.println(numss);

    }
}
